package com.zzq.my.jetpacks.jectpackapp.view.rv;

import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.recyclerview.widget.RecyclerView;

/*
 * ================================================
 * 描述：父recyclerView拦截并消耗了点击事件，不要让父recyclerView拦截
 * 作者：zhuangzeqin
 * 时间: 2023/8/4 10:47
 * 邮箱：zzq@eeepay.cn
 * 备注:
 * ----------------------------------------------------------------
 * You never know what you can do until you try !
 *      _              _           _     _   ____  _             _ _
 *     / \   _ __   __| |_ __ ___ (_) __| | / ___|| |_ _   _  __| (_) ___
 *    / _ \ | '_ \ / _` | '__/ _ \| |/ _` | \___ \| __| | | |/ _` | |/ _ \
 *   / ___ \| | | | (_| | | | (_) | | (_| |  ___) | |_| |_| | (_| | | (_) |
 *  /_/   \_\_| |_|\__,_|_|  \___/|_|\__,_| |____/ \__|\__,_|\__,_|_|\___/
 *
 * 签名：最痛苦的事不是我失败了，而是我本可以.--zzq
 * ----------------------------------------------------------------
 * ================================================
 */
public class ParentRecyclerView extends RecyclerView {
    public ParentRecyclerView(@NonNull Context context) {
        super(context);
    }

    public ParentRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public ParentRecyclerView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    //不拦截，继续分发下去
    @Override
    public boolean onInterceptTouchEvent(MotionEvent e) {
//        return super.onInterceptTouchEvent(e);
        return false;
    }

    //todo 方案三
//    通过事件分发规则我们知道，OnTouchListener优先级很高，可以通过这个来告诉父布局，不要拦截我的事件
//    holder.recyclerView.setOnTouchListener { v, event ->
//            when(event.action){
//        //当用户按下的时候，我们告诉父组件，不要拦截我的事件（这个时候子组件是可以正常响应事件的），拿起之后就会告诉父组件可以阻止。
//        MotionEvent.ACTION_DOWN,MotionEvent.ACTION_MOVE -> v.parent.requestDisallowInterceptTouchEvent(true)
//        MotionEvent.ACTION_UP -> v.parent.requestDisallowInterceptTouchEvent(false)
//    }
//        false}
}
